행렬의 미분

함수의 독립 변수나 종속 변수가 벡터나 행렬인 경우에도 미분을 정의할 수 있다. 이러한 경우에는 미분이 아닌 편미분(partial derivative)이지만 편의상 미분이라고 서술하도록 한다.

또한 행렬 미분에는 분자 중심 표현법(Numerator-layout notation)과 분모 중심 표현법(Denominator-layout notation) 두 가지가 있는데 데이터 분석에는 주로 분모 중심 표현법이 사용되므로 여기에서도 분모 중심 표현법으로 서술한다.

스칼라를 벡터로 미분

데이터 분석에서는 함수의 종속 변수 $y$ 가 스칼라이고 독립 변수 $x$ 가 벡터(다차원)인 경우가 일반적이다.

따라서 편미분 값도 $\frac{\partial y}{\partial x_1}, \frac{\partial y}{\partial x_2}, \cdots$ 등으로 여러 개가 존재한다.

이렇게 스칼라를 벡터로 미분하는 경우에는 결과를 (열) 벡터로 표시한다. 이렇게 만들어진 벡터를 그레디언트 벡터(gradient vector)라고 하고 $\nabla y$ 로 표기하기도 한다.

$$ \nabla y = \frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y}{\partial x_1}\\ \frac{\partial y}{\partial x_2}\\ \vdots\\ \frac{\partial y}{\partial x_n}\\ \end{bmatrix} $$

벡터를 스칼라로 미분

만약 함수의 종속 변수 $y$ 가 벡터(다차원 데이터)이고 독립 변수 $x$ 가 스칼라인 경우는 함수가 여러 개라고 보는 것과 마찬가지이다.

$$ y_1 = f_1(x) $$$$ y_2 = f_2(x) $$$$ \vdots $$$$ y_m = f_m(x) $$$$ \downarrow $$$$ \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots\\ y_m \\ \end{bmatrix} = \mathbf{f}(x) $$

따라서 미분 값도 $\frac{\partial y_1}{\partial x}, \frac{\partial y_2}{\partial x}, \cdots$ 등으로 여러 개가 존재한다.

벡터를 스칼라로 미분하는 경우에는 결과를 행 벡터로 표시한다.

$$ \frac{\partial \mathbf{y}}{\partial x} = \left[ \frac{\partial y_1}{\partial x} \frac{\partial y_2}{\partial x} \cdots \frac{\partial y_m}{\partial x} \right]. $$

벡터를 벡터로 미분

함수의 종속 변수와 독립 변수가 모두 벡터(다차원) 데이터인 경우에는 독립 변수 각각과 종속 변수 각각의 조합에 대해 모두 미분이 존재한다. 따라서 도함수는 행렬 형태가 된다. 이렇게 만들어진 도함수의 행렬을 자코비안 행렬(Jacobian matrix) 이라고 한다.

$$ \mathbf J = \frac{d\mathbf y}{d\mathbf x} = \begin{bmatrix} \dfrac{\partial \mathbf{y}}{\partial x_1} & \cdots & \dfrac{\partial \mathbf{y}}{\partial x_n} \end{bmatrix} = \begin{bmatrix} \dfrac{\partial y_1}{\partial x_1} & \cdots & \dfrac{\partial y_1}{\partial x_n}\\ \vdots & \ddots & \vdots\\ \dfrac{\partial y_m}{\partial x_1} & \cdots & \dfrac{\partial y_m}{\partial x_n} \end{bmatrix} $$

벡터 미분 규칙

$$\frac{\partial \mathbf{w}^\top\mathbf{x}}{\partial \mathbf{x}} = \frac{\partial \mathbf{x}^\top\mathbf{w}}{\partial \mathbf{x}} = \mathbf{w}$$

(증명)

$$ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial \mathbf{x}}= \begin{bmatrix} \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_1} \\ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\mathbf{w}^T \mathbf{x})}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} \dfrac{\partial (w_1 x_1 + \cancel{w_2 x_2} + \cdots + \cancel{w_N x_N})}{\partial x_1} \\ \dfrac{\partial (\cancel{w_1 x_1} + w_2 x_2 + \cdots + \cancel{w_N x_N})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\cancel{w_1 x_1} + \cancel{w_2 x_2} + \cdots + w_N x_N)}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_N \\ \end{bmatrix} = \mathbf{w} $$
$$\frac{\partial \mathbf{x}^\top\mathbf{A}\mathbf{x}}{\partial \mathbf{x}} = (\mathbf{A} + \mathbf{A}^\top)\mathbf{x}$$

(증명)

$$ \begin{eqnarray} \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial \mathbf{x}} &=& \begin{bmatrix} \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_1} \\ \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\mathbf{x}^\top\mathbf{A}\mathbf{x})}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_1} \\ \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_2} \\ \vdots \\ \dfrac{\partial (\sum_{i=1}^{N} \sum_{j=1}^{N} a_{ij} x_i x_j)}{\partial x_N} \\ \end{bmatrix} = \begin{bmatrix} \dfrac{\partial \left( \begin{matrix} a_{11}x_1x_1 + a_{12}x_1x_2 + \cdots + a_{1N}x_1x_N + \\ a_{21}x_2x_1 + \cancel{a_{22}x_2x_2} + \cdots + \cancel{a_{2N}x_2x_N} + \\ \cdots \\ a_{N1}x_Nx_1 + \cancel{a_{N2}x_Nx_2} + \cdots + \cancel{a_{NN}x_Nx_N} \end{matrix} \right)}{\partial x_1} \\ \dfrac{\partial \left( \begin{matrix} \cancel{a_{11}x_1x_1} + a_{12}x_1x_2 + \cdots + \cancel{a_{1N}x_1x_N} + \\ a_{21}x_2x_1 + a_{22}x_2x_2 + \cdots + a_{2N}x_2x_N + \\ \cdots \\ \cancel{a_{N1}x_Nx_1} + a_{N2}x_Nx_2 + \cdots + \cancel{a_{NN}x_Nx_N} \end{matrix} \right)}{\partial x_2} \\ \vdots \\ \end{bmatrix} \\ &=& \begin{bmatrix} \sum_{i=1}^{N} a_{1i} x_i + \sum_{i=1}^{N} a_{i1} x_i\\ \sum_{i=1}^{N} a_{2i} x_i + \sum_{i=1}^{N} a_{i2} x_i\\ \vdots \\ \sum_{i=1}^{N} a_{Ni} x_i + \sum_{i=1}^{N} a_{iN} x_i\\ \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^{N} a_{1i} x_i\\ \sum_{i=1}^{N} a_{2i} x_i\\ \vdots \\ \sum_{i=1}^{N} a_{Ni} x_i\\ \end{bmatrix} + \begin{bmatrix} \sum_{i=1}^{N} a_{i1} x_i \\ \sum_{i=1}^{N} a_{i2} x_i \\ \vdots \\ \sum_{i=1}^{N} a_{iN} x_i \\ \end{bmatrix} = \mathbf{A} \mathbf{x} + \mathbf{A}^T \mathbf{x} = (\mathbf{A} + \mathbf{A}^T)\mathbf{x} \end{eqnarray} $$

스칼라를 행렬로 미분

종속 변수가 스칼라 값이고 독립 변수가 행렬인 경우에는 도함수 행렬의 모양이 독립 변수 행렬과 일치한다.

$$ \frac{\partial y}{\partial \mathbf{X}} = \begin{bmatrix} \frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{12}} & \cdots & \frac{\partial y}{\partial x_{1n}}\\ \frac{\partial y}{\partial x_{21}} & \frac{\partial y}{\partial x_{22}} & \cdots & \frac{\partial y}{\partial x_{2n}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y}{\partial x_{m1}} & \frac{\partial y}{\partial x_{m2}} & \cdots & \frac{\partial y}{\partial x_{mn}}\\ \end{bmatrix} $$

행렬 미분 규칙

$$ \dfrac{\partial \text{tr} (\mathbf{B}\mathbf{A})}{\partial \mathbf{A}} = \mathbf{B}^T$$

(증명)

$$ \text{tr}(\mathbf{B}\mathbf{A}) = \sum_{i=1}^n \sum_{j=1}^n b_{ji} a_{ij} $$$$ \dfrac{\partial \text{tr} (\mathbf{B}\mathbf{A})}{\partial a_{ij}} = b_{ji} $$

$$ \dfrac{\partial \log \det \mathbf{A} }{\partial \mathbf{A}} = (\mathbf{A}^{-1})^T $$

(증명)

$$ \dfrac{\partial}{\partial a_{i,j}} \det A = M_{i,j} $$$$ \dfrac{\partial}{\partial A} \det A = M = (\det A) A^{-1} $$$$ \dfrac{d}{dx} \log f(x) = \dfrac{f'(x)}{f(x)} = (\det A) A^{-1} / \det A = A^{-1}$$